Chromium partially supports {align,justify,place}-self with absolute positioning#29342
Chromium partially supports {align,justify,place}-self with absolute positioning#29342captainbrosset wants to merge 7 commits into
{align,justify,place}-self with absolute positioning#29342Conversation
…ace-self properties
|
Tip: Review these changes grouped by change (recommended for most PRs), or grouped by feature (for large PRs). |
ddbeck
left a comment
There was a problem hiding this comment.
This is a weird case when it comes to partial_implementation. Our guidelines don't require us to set it. But there are multiple vendor bugs, so maybe it's still partial anyway.
I'm left wondering: if everyone agrees this is buggy behavior, why did everyone implement it the same way? 🤔
|
@fantasai is this something you can help us on? |
This comment was marked as outdated.
This comment was marked as outdated.
Co-authored-by: Daniel D. Beck <daniel@ddbeck.com>
|
I have applied Daniel's suggestion now, which makes sense to me. @captainbrosset Should we go ahead and merge, even if we haven't heard back from @fantasai? Edit: I realize I had a typo in my previous message. |
{align,justify,place}-self with absolute positioning
Co-authored-by: Patrick Brosset <patrickbrosset@gmail.com>
| "version_added": "122" | ||
| "version_added": "122", | ||
| "partial_implementation": true, | ||
| "notes": "`align-self` only applies to absolutely positioned boxes when both insets on the appropriate axis are 0, for example `top` and `bottom`. See [bug 376097648](https://crbug.com/376097648)" |
There was a problem hiding this comment.
I believe it’s important to clarify that this bug only occurs when the parent element is a block; there are no issues with flex or grid.
| "version_added": "122" | ||
| "version_added": "122", | ||
| "partial_implementation": true, | ||
| "notes": "`justify-self` only applies to absolutely positioned boxes when both insets on the appropriate axis are 0, for example `left` and `right`. See [bug 376097648](https://crbug.com/376097648)" |
There was a problem hiding this comment.
This appears to have been fixed in this CL (Chrome 137); please verify it again.
https://chromiumdash.appspot.com/commit/a82a54d387f4bc1c3c1c08eeda15e86a7ef4f792
Summary
This PR adds partial implementation flags and notes for
align-self,justify-self, andplace-selffor all browsers, when they apply to absolutely positioned elements.I tested this in Safari, Firefox, and Chrome, and discussed with Mozilla engineers @dshin-moz and @emilio.
My understanding is that there's a missing piece in all browsers where you can't just apply the above properties and expect them to work on their own. They also require a non-auto
insetvalue.Test results and supporting details
Test case: https://bug2026174.bmoattachments.org/attachment.cgi?id=9557965
The red box should be centered in the gray box.
Code:
Adding
inset:0;on the child element makes it work.I'm not entirely sure I'm reading the spec correctly though, and the placement of auto-inset abspos elements may actually be correct. But, WPT seems to show browser differences in this area at least: https://wpt.fyi/results/css/css-align/abspos/align-self-static-position-001.html?label=experimental&label=master&aligned
Related issues